package com.caixin.domain.user.service.impl;

import com.caixin.domain.user.agg.User;
import com.caixin.domain.user.repository.UserRepo;
import com.caixin.domain.user.service.UserDomainService;
import com.caixin.service.user.command.UserAddCmd;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

import javax.annotation.Resource;

/**
 * DOTO
 *
 * @author wbcaicx
 * @date 2021/11/19 11:44
 */
@Service
public class UserDomainServiceImpl implements UserDomainService {
    @Resource
    UserRepo userRepo;


    /**
     * 创建用户业务校验
     *
     * @param cmd:
     * @return void
     * @date 2021年12月07日 15:01
     */
    @Override
    public void checkCreateUser(UserAddCmd cmd) {
        //用户是否已存在
        this.userNameExists(cmd.getUserName());
    }

    /**
     * 用户名是否存在
     *
     * @param userName:用户名
     * @return void
     * @date 2021年12月07日 15:01
     */
    private void userNameExists(String userName) {
        User userByName = userRepo.findUserByName(userName);
        //断言
        Assert.isNull(userByName, "用户【" + userName + "】已存在，注册失败！");
    }
}
